package com.whnk.attendance.service;

import java.util.List;
import com.whnk.attendance.domain.PmProInfo;
import com.whnk.attendance.vo.*;

/**
 * 项目基本信息Service接口
 *
 * @author whnk
 * @date 2021-11-17
 */
public interface IPmProInfoService
{
    /**
     * 查询项目基本信息
     *
     * @param proId 项目基本信息主键
     * @return 项目基本信息
     */
    public PmProInfo selectPmProInfoByProId(Long proId);

    /**
     * 查询项目基本信息列表
     *
     * @param pmProInfo 项目基本信息
     * @return 项目基本信息集合
     */
    public List<PmProInfo> selectPmProInfoList(PmProInfo pmProInfo);

    /**
     * 新增项目基本信息
     *
     * @param pmProInfo 项目基本信息
     * @return 结果
     */
    public int insertPmProInfo(PmProInfo pmProInfo);

    /**
     * 修改项目基本信息
     *
     * @param pmProInfo 项目基本信息
     * @return 结果
     */
    public int updatePmProInfo(PmProInfo pmProInfo);

    /**
     * 批量删除项目基本信息
     *
     * @param proIds 需要删除的项目基本信息主键集合
     * @return 结果
     */
    public int deletePmProInfoByProIds(Long[] proIds);

    /**
     * 删除项目基本信息信息
     *
     * @param proId 项目基本信息主键
     * @return 结果
     */
    public int deletePmProInfoByProId(Long proId);

    /**
     * 分页查询项目列表
     */
    public List<PmProInfoListVo> selectPmProInfoListVoList(PmProInfoQueryVo pmProInfoQueryVo);

    /**
     * 根据逻辑主键查询项目信息
     */
    public PmProInfoListVo selectPmProInfoListVoByProId(Long proId);

    /**
     * 根据项目编号查询项目信息
     */
    public PmProInfoListVo selectPmProInfoListVoByProNum(String proNum);

    /**
     * 校验项目编号是否唯一
     */
    public boolean checkProNum(PmProInfoUpdateVo pmProInfoUpdateVo);

//    /**
//     * 新增修改界面项目分类接口
//     */
//    public List<PmProInfoProClaNumVo> selectPmProInfoProClaNumVoList();

    /**
     * 新增项目信息
     */
    public int insertPmProInfo(PmProInfoUpdateVo pmProInfoUpdateVo);

    /**
     * 修改项目信息
     */
    public int updatePmProInfo(PmProInfoUpdateVo pmProInfoUpdateVo);

    /*
     * 导入项目信息
     */
    public String importData(List<PmProInfoListVo> pmProInfoListVoList, Boolean isUpdateSupport);

    /**
     * 项目编号id，项目名称name接口
     */
    public List<PmProInfoListVo> proInfoList();
}
